# 初始化变量，用于存储用户输入的第一个数字的字符串形式
x_str = ""
# 初始化变量，用于存储用户输入的第二个数字的字符串形式
y_str = ""
# 初始化变量，用于存储用户输入的运算符
mark = ""
# 定义一个布尔变量，用于标记x_str是否是纯数字，初始值为False
x_is_num = False

# 处理x的输入，使用while循环，只要x_is_num为False就会持续循环
while not x_is_num:
    # 提示用户输入第一个数字，并将输入的内容存储到x_str变量中
    x_str = input("请输入第一个数字：")
    # 遍历x_str中的每一个字符
    for c in x_str:
        # 检查当前字符是否不在数字字符集合中
        if c not in "0123456789":
            # 如果有一个字符不是数字，将x_is_num标记为False
            x_is_num = False
            # 跳出当前的for循环
            break
    # 当for循环正常结束（即没有通过break语句跳出）时，会执行else语句块
    else:
        # 如果循环正常结束，说明x_str中的所有字符都是数字，将x_is_num标记为True
        x_is_num = True
    # 如果x_is_num为True，说明输入的是纯数字，跳出while循环
    if x_is_num:
        break
    # 如果输入不是纯数字，提示用户输入的内容有误，需要重新输入
    print("输入的内容有误，请重新输入")

# 定义一个布尔变量，用于标记运算符输入是否正确，初始值为False
mark_is_right = False
# 处理运算符的输入，使用while循环，只要mark_is_right为False就会持续循环
while not mark_is_right:
    # 提示用户输入运算符，并将输入的内容存储到mark变量中
    mark = input("请输入运算符：")
    # 检查输入的运算符长度是否为1，并且是否是合法的运算符（+、-、*、/）
    if len(mark) == 1 and mark in "+-*/":
        # 如果运算符输入正确，将mark_is_right标记为True
        mark_is_right = True
        # 跳出当前的while循环
        break
    # 如果运算符输入不正确，提示用户运算符不对，需要重新输入
    print("运算符不对，请重新输入")

# 定义一个布尔变量，用于标记y_str是否是纯数字，初始值为False
y_is_num = False
# 处理y的输入，使用while循环，只要y_is_num为False就会持续循环
while not y_is_num:
    # 提示用户输入第二个数字，并将输入的内容存储到y_str变量中
    y_str = input("请输入第二个数字：")
    # 遍历y_str中的每一个字符
    for c in y_str:
        # 检查当前字符是否不在数字字符集合中
        if c not in "0123456789":
            # 如果有一个字符不是数字，将y_is_num标记为False
            y_is_num = False
            # 跳出当前的for循环
            break
    # 当for循环正常结束（即没有通过break语句跳出）时，会执行else语句块
    else:
        # 如果循环正常结束，说明y_str中的所有字符都是数字，将y_is_num标记为True
        y_is_num = True
    # 如果y_is_num为True，说明输入的是纯数字，跳出while循环
    if y_is_num:
        break
    # 如果输入不是纯数字，提示用户输入的内容有误，需要重新输入
    print("输入的内容有误，请重新输入")

# 将存储数字的字符串转换为浮点数类型
x = float(x_str)
y = float(y_str)

# 根据用户输入的运算符进行相应的数学运算
if mark == "+":
    r = x + y
elif mark == '-':
    r = x - y
elif mark == '*':
    r = x * y
elif mark == '/':
    r = x / y

# 打印计算结果，使用f-string格式化输出
print(f"{x} {mark} {y} = {r}")